91cb86225967b1e12cdab52d2d3ea35afc2b8c9e,butterknife-compiler/src/test/java/butterknife/UnbinderTest.java,UnbinderTest,fullIntegration,#,577

Before Change


        + "}"
    );

    JavaFileObject expectedSourceG = JavaFileObjects.forSourceString("test/G$$ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import android.view.View;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.DebouncingOnClickListener;\n"
        + "import butterknife.internal.Finder;\n"
        + "import butterknife.internal.Utils;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "import java.lang.SuppressWarnings;\n"
        + "public class G$$ViewBinder<T extends G> extends E$$ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    return new InnerUnbinder<>(target, finder, source, res, theme);\n"
        + "  }\n"
        + "  protected static class InnerUnbinder<T extends G> extends E$$ViewBinder.InnerUnbinder<T> {\n"
        + "    private View view16908290;\n"
        + "    @SuppressWarnings(\"ResourceType\")\n"
        + "    protected InnerUnbinder(final T target, Finder finder, Object source, Resources res, Resources.Theme theme) {\n"
        + "      super(target, finder, source, res, theme);\n"
        + "      View view;\n"
        + "      target.button2 = finder.findRequiredView(source, 16908314, \"field 'button2'\");\n"
        + "      view = finder.findRequiredView(source, 16908290, \"method 'onClick'\");\n"
        + "      view16908290 = view;\n"
        + "      view.setOnClickListener(new DebouncingOnClickListener() {\n"
        + "        @Override\n"
        + "        public void doClick(View p0) {\n"
        + "          target.onClick();\n"
        + "        }\n"
        + "      });\n"
        + "      target.grayColor = Utils.getColor(res, theme, 17170432);\n"
        + "    }\n"
        + "    @Override\n"
        + "    public void unbind() {\n"
        + "      T target = this.target;\n"
        + "      super.unbind();\n"
        + "      target.button2 = null;\n"
        + "      view16908290.setOnClickListener(null);\n"
        + "      view16908290 = null;\n"
        + "    }\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject expectedSourceH = JavaFileObjects.forSourceString("test/H$$ViewBinder", ""
        + "package test;\n"

After Change


        + "  }\n"
        + "}\n");

    JavaFileObject binderASource = JavaFileObjects.forSourceString("test/A_ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import butterknife.internal.Utils;\n"
        + "import butterknife.internal.ViewBinder;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "import java.lang.SuppressWarnings;\n"
        + "public class A_ViewBinder<T extends A> implements ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    bindToTarget(target, res, theme);\n"
        + "    return Unbinder.EMPTY;\n"
        + "  }\n"
        + "  @SuppressWarnings(\"ResourceType\")\n"
        + "  public static void bindToTarget(A target, Resources res, Resources.Theme theme) {\n"
        + "    target.blackColor = Utils.getColor(res, theme, 17170444);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject binderBSource = JavaFileObjects.forSourceString("test/B_ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import butterknife.internal.Utils;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "import java.lang.SuppressWarnings;\n"
        + "public class B_ViewBinder<T extends B> extends A_ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    bindToTarget(target, res, theme);\n"
        + "    return Unbinder.EMPTY;\n"
        + "  }\n"
        + "  @SuppressWarnings(\"ResourceType\")\n"
        + "  public static void bindToTarget(B target, Resources res, Resources.Theme theme) {\n"
        + "    A_ViewBinder.bindToTarget(target, res, theme);\n"
        + "    target.whiteColor = Utils.getColor(res, theme, 17170443);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject binderCSource = JavaFileObjects.forSourceString("test/C_ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "public class C_ViewBinder<T extends C> extends B_ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    return new C_ViewBinding<>(target, finder, source, res, theme);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject bindingCSource = JavaFileObjects.forSourceString("test/C_ViewBinding", ""
        + "package test;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import butterknife.internal.Utils;\n"
        + "import java.lang.IllegalStateException;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "import java.lang.SuppressWarnings;\n"
        + "public class C_ViewBinding<T extends C> implements Unbinder {\n"
        + "  protected T target;\n"
        + "  @SuppressWarnings(\"ResourceType\")\n"
        + "  public C_ViewBinding(T target, Finder finder, Object source, Resources res, Resources.Theme theme) {\n"
        + "    this.target = target;\n"
        + "    B_ViewBinder.bindToTarget(target, res, theme);\n"
        + "    target.button1 = finder.findRequiredView(source, 16908313, \"field 'button1'\");\n"
        + "    target.transparentColor = Utils.getColor(res, theme, 17170445);\n"
        + "  }\n"
        + "  @Override\n"
        + "  public void unbind() {\n"
        + "    T target = this.target;\n"
        + "    if (target == null) throw new IllegalStateException(\"Bindings already cleared.\");\n"
        + "    target.button1 = null;\n"
        + "    this.target = null;\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject binderDSource = JavaFileObjects.forSourceString("test/D_ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "public class D_ViewBinder<T extends D> extends C_ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    return new D_ViewBinding<>(target, finder, source, res, theme);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject bindingDSource = JavaFileObjects.forSourceString("test/D_ViewBinding", ""
        + "package test;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.internal.Finder;\n"
        + "import butterknife.internal.Utils;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.SuppressWarnings;\n"
        + "public class D_ViewBinding<T extends D> extends C_ViewBinding<T> {\n"
        + "  @SuppressWarnings(\"ResourceType\")\n"
        + "  public D_ViewBinding(T target, Finder finder, Object source, Resources res, Resources.Theme theme) {\n"
        + "    super(target, finder, source, res, theme);\n"
        + "    target.grayColor = Utils.getColor(res, theme, 17170432);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject binderESource = JavaFileObjects.forSourceString("test/E_ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "public class E_ViewBinder<T extends E> extends C_ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    return new E_ViewBinding<>(target, finder, source, res, theme);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject bindingESource = JavaFileObjects.forSourceString("test/E_ViewBinding", ""
        + "package test;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.internal.Finder;\n"
        + "import butterknife.internal.Utils;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.SuppressWarnings;\n"
        + "public class E_ViewBinding<T extends E> extends C_ViewBinding<T> {\n"
        + "  @SuppressWarnings(\"ResourceType\")\n"
        + "  public E_ViewBinder(T target, Finder finder, Object source, Resources res, Resources.Theme theme) {\n"
        + "    super(target, finder, source, res, theme);\n"
        + "    target.backgroundDarkColor = Utils.getColor(res, theme, 17170446);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject binderFSource = JavaFileObjects.forSourceString("test/F_ViewBinder", ""
        + "package test;\n"
        + "import android.content.Context;\n"
        + "import android.content.res.Resources;\n"
        + "import butterknife.Unbinder;\n"
        + "import butterknife.internal.Finder;\n"
        + "import java.lang.Object;\n"
        + "import java.lang.Override;\n"
        + "public class F_ViewBinder<T extends F> extends D_ViewBinder<T> {\n"
        + "  @Override\n"
        + "  public Unbinder bind(Finder finder, T target, Object source) {\n"
        + "    Context context = finder.getContext(source);\n"
        + "    Resources res = context.getResources();\n"
        + "    Resources.Theme theme = context.getTheme();\n"
        + "    return new F_ViewBinding<>(target, finder, source, res, theme);\n"
        + "  }\n"
        + "}"
    );

    JavaFileObject bindingFSource = JavaFileObjects.forSourceString("test/F_ViewBinding", ""
        + "package test;\n"